 <!--
    -  Copyright (c) 2018-2025, haohanwork.com All rights reserved.
  -->
<template>
  <div class="execution">
    <basic-container>
      <avue-crud
        ref="crud"
        :page.sync="page"
        :data="tableData"
        :permission="permissionList"
        :table-loading="tableLoading"
        :option="tableOption"
        @on-load="getList"
        @search-change="searchChange"
        @refresh-change="refreshChange"
        @row-update="handleUpdate"
        @row-save="handleSave"
        @row-del="rowDel"
      >
        <template slot-scope="scope" slot="menu">
          <el-button type="text" size="small" plain @click="show(scope.row)">编辑</el-button>
          <!-- <el-button type="text" size="small" plain @click="jumpToRedact">编辑</el-button>
          <el-button type="text" size="small" plain @click="jumpToDetail">打印</el-button>-->
        </template>
      </avue-crud>
    </basic-container>
    <el-dialog title="商品信息" :visible.sync="dialogTableVisible" align="center">
      <template>
        <p class="io-goods-detaill">当库存数量不足时，库存预警能够很好的帮助及时处理库存商品。</p>
        <p class="io-goods-detaill">
          阙值设置&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;商品库存少于：
          <el-input v-model="topData.stocksForewarn" type="number" oninput="if(value.length>8)value=value.slice(0,8)" style="width: 200px"/> 件时，请通知我
        </p>
        <el-button type="primary" @click="editDetails()" style="margin-top: 20px;">确定</el-button>
      </template>
    </el-dialog>
  </div>
</template>
<!-- 采购退货 -->
<script>
import {
  fetchList
} from "@/api/scm/warehouse/warehousewarning";
import {
  putObj
} from "@/api/goods/goodsmodel";
import { tableOption } from "@/const/crud/scm/warehouse/warehousewarning";
import { mapGetters } from "vuex";

export default {
  name: "order",
  data() {
    return {
      tableData: [],
      page: {
        total: 0, // 总页数
        currentPage: 1, // 当前页数
        pageSize: 20 // 每页显示多少条
      },
      tableLoading: false,
      tableOption: tableOption,
      dialogTableVisible:false,
      topData:''
    };
  },
  computed: {
    ...mapGetters(["permissions"]),
    permissionList() {
      return {
        addBtn: this.vaildData(
          this.permissions.purchase_purchasetask_add,
          true
        ),
        delBtn: this.vaildData(
          this.permissions.purchase_purchasetask_del,
          true
        ),
        editBtn: this.vaildData(
          this.permissions.purchase_purchasetask_edit,
          true
        )
      };
    }
  },
  methods: {
    getList(page, params) {
      this.tableLoading = true;
      fetchList(
        Object.assign(
          {
            current: page.currentPage,
            size: page.pageSize
          },
          params
        )
      ).then(response => {
        response.data.data.records.forEach(item=>{
          if(item.modelStorage <= item.stocksForewarn){
            item.remarks = '库存紧张'
          }else{
            item.remarks = '库存正常'
          }
        })
        this.tableData = response.data.data.records;
        this.page.total = response.data.data.total;
        this.tableLoading = false;
      });
    },
    rowDel: function(row, index) {
      var _this = this;
      this.$confirm("是否确认删除ID为" + row.id, "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      })
        .then(function() {
          return delObj(row.id);
        })
        .then(data => {
          _this.tableData.splice(index, 1);
          _this.$message({
            showClose: true,
            message: "删除成功",
            type: "success"
          });
          this.getList(this.page);
        })
        .catch(function(err) {});
    },
    /**
     * @title 数据更新
     * @param row 为当前的数据
     * @param index 为当前更新数据的行数
     * @param done 为表单关闭函数
     *
     **/
    handleUpdate: function(row, index, done) {
      putObj(row).then(data => {
        this.tableData.splice(index, 1, Object.assign({}, row));
        this.$message({
          showClose: true,
          message: "修改成功",
          type: "success"
        });
        done();
        this.getList(this.page);
      });
    },
    /**
     * @title 数据添加
     * @param row 为当前的数据
     * @param done 为表单关闭函数
     *
     **/
    handleSave: function(row, done) {
      addObj(row).then(data => {
        this.tableData.push(Object.assign({}, row));
        this.$message({
          showClose: true,
          message: "添加成功",
          type: "success"
        });
        done();
        this.getList(this.page);
      });
    },
    /**
     * 搜索回调
     */
    searchChange(form, done) {
                this.getList(this.page, form);
                done();
            },
    /**
     * 刷新回调
     */
    refreshChange(info) {
    this.getList(this.page, this.filterForm(info.searchForm));
},
    /**
     * 页面跳转
     */
    show(row){
      this.dialogTableVisible = true;
      this.topData = row;
    },
    editDetails() {
      let params = this.topData;
      putObj(params).then(response => {
        if(response.data.code == 0){
          this.$message.success("编辑成功");
          this.getList(this.page);
          this.dialogTableVisible = false;
        }else{
          this.$message.error("编辑失败");
        }
      });
    }
    }
  }
</script>

<style lang="scss" scoped>
</style>
